/*
* 922. 按奇偶排序数组 II
* 给定一个非负整数数组 A， A 中一半整数是奇数，一半整数是偶数。
* 对数组进行排序，以便当 A[i] 为奇数时，i 也是奇数；当 A[i] 为偶数时， i 也是偶数。
* 你可以返回任何满足上述条件的数组作为答案。
* */

// 解法一
/*const sortArrayByParityII = (arr) => {
  const odd = []
  const even = []
  const result = []
  const len = arr.length

  arr.sort()

  arr.forEach((item) => {
    if (item % 2 === 0) {
      even.push(item)
    } else {
      odd.push(item)
    }
  })

  for (let i = 0; i < len/2; i++) {
    result.push(even[i])
    result.push(odd[i])
  }

  return result
}*/

// 解法二
const sortArrayByParityII = (arr) => {
  const result = []
  let evenIndex = 0
  let oddIndex = 1

  arr.forEach((item) => {
    if (item % 2 === 0) {
      result[evenIndex] = item
      evenIndex += 2
    } else {
      result[oddIndex] = item
      oddIndex += 2
    }
  })

  return result
}

export default sortArrayByParityII
